<!DOCTYPE html>
<html lang="zh-CN">
<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <!-- 上述3个meta标签*必须*放在最前面，任何其他内容都*必须*跟随其后！ -->
    <meta name="viewport"
          content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0,user-scalable=no,minimal-ui">
    <meta name="description" content="">
    <meta name="author" content="">
    <link rel="icon" href="../img/asset-favico.ico">
    <title>编辑信息</title>
    <link rel="stylesheet" href="../css/page-health-orderInfo.css"/>
    <link rel="stylesheet" href="../plugins/elementui/index.css"/>
    <link rel="stylesheet" href="../plugins/font-awesome/css/font-awesome.min.css">
    <script src="../plugins/healthmobile.js"></script>
    <script src="../plugins/datapicker/datePicker.js"></script>
    <script src="../plugins/vue/vue.js"></script>
    <script src="../plugins/vue/axios-0.18.0.js"></script>
    <script src="../plugins/elementui/index.js"></script>
    <script src="../plugins/jquery/jquery.min.js"></script>
    <script type="text/javascript"
            src="http://api.map.baidu.com/api?v=2.0&ak=0FuoX30MFf7YMrdS5Wi9GGAcHBblKDuu"></script>
    <script>
        var id = getUrlParam("id");//从URL地址栏获取体检套餐id
        //var addressData = JSON.stringify(getUrlParam("addressData"));//从URL地址栏获取预约机构地址列表
    </script>


</head>
<body data-spy="scroll" data-target="#myNavbar" data-offset="150">
<div id="app" class="app">
    <!-- 页面头部 -->
    <div class="top-header">
        <span class="f-left"><i class="icon-back" onclick="history.go(-1)"></i></span>
        <span class="center">传智健康</span>
        <span class="f-right"><i class="icon-more"></i></span>
    </div>
    <!-- 页面内容 -->
    <div class="contentBox">
        <div class="card">
            <div class="">
                <img :src="'http://qem9wncea.bkt.clouddn.com/' + this.setmeal.img" width="100%" height="100%"/>
            </div>
            <div class="project-text">
                <h4 class="tit">{{setmeal.name}}</h4>
                <p class="subtit">{{setmeal.remark}}</p>
                <p class="keywords">
                    <span>{{setmeal.sex == '0' ? '性别不限' : setmeal.sex == '1' ? '男':'女'}}</span>
                    <span>{{setmeal.age}}</span>
                </p>
            </div>
            <div class="project-know">
                <a href="orderNotice.html" class="link-page">
                    <i class="icon-ask-circle"><span class="path1"></span><span class="path2"></span></i>
                    <span class="word">预约须知</span>
                    <span class="arrow"><i class="icon-rit-arrow"></i></span>
                </a>
            </div>
        </div>
        <div class="form-info">
            <div class="info-title">
                <span class="name">体检人信息</span>
            </div>
            <form class="info-form">
                <div class="input-row">
                    <label>体检人</label>
                    <input v-model="orderInfo.name" type="text" class="input-clear" placeholder="请输入姓名">
                </div>
                <div class="input-row single-radio">
                    <label class="radio-title">性别</label>
                    <div class="radio-list">
                        <div class="radio">
                            <input v-model="orderInfo.sex" id="item1" type="radio" name="sex" value="1" checked>
                            <label for="item1"></label>
                            <span>男</span>
                        </div>
                        <div class="radio">
                            <input v-model="orderInfo.sex" id="item2" type="radio" name="sex" value="2">
                            <label for="item2"></label>
                            <span>女</span>
                        </div>
                    </div>
                </div>
                <div class="input-row">
                    <label>手机号</label>
                    <input v-model="orderInfo.telephone" type="text" class="input-clear" placeholder="请输入手机号">
                    <input style="font-size: x-small;" id="validateCodeButton" @click="sendValidateCode()" type="button"
                           value="发送验证码">
                </div>
                <div class="input-row">
                    <label>验证码</label>
                    <input v-model="orderInfo.validateCode" type="text" class="input-clear" placeholder="请输入验证码">
                </div>
                <div class="input-row">
                    <label>身份证号</label>
                    <input v-model="orderInfo.idCard" type="text" class="input-clear" placeholder="请输入身份证号">
                </div>

                <div class="input-row" style="height: 30px;line-height: 30px">
                    <label>预约地址</label>
                    <el-button type="primary" @click="seeLocation()" icon="el-icon-location"
                               round style="float:left">
                        查看地图定位
                    </el-button>
                    <el-select v-model="orderInfo.orderAddress">
                        <el-option :label="address.addressDetails" :value="address.id" v-for="address in addressData">
                            {{address.addressDetails}}
                        </el-option>
                    </el-select>
                </div>

                <div class="input-row" style="display: none" id="showMapDiv">
                    <div style="display: none;width: 100%;height: 340px" id="map"></div>
                </div>
                <div class="input-row" style="display: none" id="confirmDiv">
                    <el-button type="primary" @click="confirm()" id="confirm" style="float: right">确定当前地址</el-button>
                </div>
                <div class="date">
                    <label>体检日期</label>
                    <i class="icon-date" class="picktime"></i>
                    <input v-model="orderInfo.orderDate" type="text" class="picktime" readonly>
                </div>
            </form>
            <div class="box-button">
                <button @click="submitOrder()" type="button" class="btn order-btn">提交预约</button>
            </div>
        </div>
    </div>
</div>
<script>
    var vue = new Vue({
        el: '#app',
        data: {
            //imgUrl:null,
            setmeal: {},//套餐信息
            orderInfo: {
                setmealId: id,
                sex: '1'
            },//预约信息,
            addressData: null//体检机构信息
        },
        methods: {
            //发送验证码
            sendValidateCode() {
                //获取用户输入的手机号
                var telephone = this.orderInfo.telephone;
                //使用正则表达式进行手机号合法性校验
                if (!checkTelephone(telephone)) {
                    //校验不通过，返回false
                    this.$message.error("手机号输入错误，请检查后重新输入！");
                    return false;
                }
                validateCodeButton = $("#validateCodeButton")[0];//锁定按钮
                clock = window.setInterval(doLoop, 1000);//使用定时器方法每隔1秒执行一次

                //发送ajax请求，在Controller中为用户发送手机验证码
                axios.post("/validatecode/send4Order.do?telephone=" + telephone).then((res) => {
                    if (!res.data.flag) {
                        this.$message.error(res.data.message);
                    }
                });
            },

            //提交预约
            submitOrder() {
                //身份证进行校验
                var idCard = this.orderInfo.idCard;
                if (!checkIdCard(idCard)) {
                    //身份证号输入错误
                    this.$message.error("身份证号输入错误，请检查后重新输入！");
                    return false;
                }
                //发送ajax请求，将数据提交到Controller
                //单独封装预约地址信息
                //this.orderInfo.orderAddress = $("#address").val();
                axios.post("/order/submitOrder.do", this.orderInfo).then((res) => {
                    if (res.data.flag) {
                        //预约成功，跳转到预约成功页面
                        window.location.href = "orderSuccess.html?orderId=" + res.data.data;
                    } else {
                        //预约失败，弹出提示
                        this.$message.error(res.data.message);
                    }
                });
            },

            //查看地图定位
            /* seeLocation() {
                 $("#showMapDiv").show();//显示包含地图div的大div
                 $("#map").show();//显示地图容器的div
                 $("#confirmDiv").show();//显示确定按钮的div

                 var map = new BMap.Map("map");//在指定的容器内创建地图实例
                 var point = new BMap.Point(116.331398,39.897445);
                 map.centerAndZoom(point,12);
                 map.setDefaultCursor("crosshair");//设置地图默认的鼠标指针样式
                 map.enableScrollWheelZoom();//启用滚轮放大缩小，默认禁用。
                 map.addControl(new BMap.NavigationControl());

                 dingwei();
                 map.addEventListener("click", function (e) {//地图单击事件
                     var geocoder = new BMap.Geocoder();
                     var point = new BMap.Point(e.point.lng, e.point.lat);
                     geocoder.getLocation(point, function (geocoderResult, LocationOptions) {
                         map.clearOverlays()
                         //map.addControl(new BMap.NavigationControl());
                         //var marker = new BMap.Marker(point);        // 创建标注
                         //this.map.addOverlay(marker);
                         //定位成功
                         var address = geocoderResult.address;
                         $("#address").val(address);
                     });
                 });


                 function dingwei() {
                     var geolocation = new BMap.Geolocation();
                     geolocation.getCurrentPosition(function (r) {
                         if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                             var mk = new BMap.Marker(r.point);
                             map.addOverlay(mk);
                             map.panTo(r.point);
                             var city_name = r.address.province + r.address.city;
                             //点击设置定位后就自动定位当前地址,并给经纬度和详细地址文本域赋值
                             $("#address").val(city_name);
                         } else {
                             console.log('获取失败');
                         }
                     });
                 }
             },*/
            seeLocation() {
             
                $("#showMapDiv").show();//显示包含地图div的大div
                $("#map").show();//显示地图容器的div
                $("#confirmDiv").show();//显示确定按钮的div

                var map = new BMap.Map("map");
                map.centerAndZoom(new BMap.Point(117.026238,36.683885), 13);
                map.enableScrollWheelZoom(true);
                var index = 0;
                var myGeo = new BMap.Geocoder(); //创建地址解析器实例
                var adds=[];
                // 百度地图API功能
                var currentCity = ""; //当前城市
                var currentCityOrganizationArr = new Array(); //当前城市所有的体检机构数组
                //var lngAndLatArr =new Array();//当前城市所有的体检机构数组对应的经纬度数组
                //var adds = new Array();
                //先定位当前城市
                var geolocation = new BMap.Geolocation();
                geolocation.getCurrentPosition(function (r) {
                    if (this.getStatus() == BMAP_STATUS_SUCCESS) {
                        var mk = new BMap.Marker(r.point);
                        map.addOverlay(mk);
                        map.panTo(r.point);
                        var city_name = r.address.province + r.address.city;
                        currentCity = r.address.city;
                        //再遍历所有的预约体检机构
                        var addressList = vue.addressData;
                        for (var address of addressList) {
                            //获取所有体检机构的详细地址
                            var address4Details = address.addressDetails;
                            //alert(address4Details)
                            //判断是否匹配当前的城市
                            if (address4Details.match(currentCity)) {
                                //将当前城市所有的预约体检机构添加到数组
                                currentCityOrganizationArr.push(address4Details);
                            }
                        }
                        //alert(currentCityOrganizationArr);
                        
                        //遍历当前城市所有的体检机构数组,并根据地址逆解析,再将解析后的经纬度添加到保存经纬度的数组中
                        /*if (index < adds.length) {
                            var add = adds[index];
                            geocodeSearch(add);
                            index++;
                        }*/
                        //遍历当前城市所有的体检机构数组,根据地址解析
                        adds = [...currentCityOrganizationArr];
                        
                       

                        for (var i = 0; i < adds.length; i++) {
                            var add = adds[i];
                            geocodeSearch(add);
                        }
                        function geocodeSearch(add){
                            /*if(index < adds.length){
                                setTimeout(bdGEO,400);
                            }*/
                            myGeo.getPoint(add, function(point){
                                if (point) {
                                    //document.getElementById("result").innerHTML +=  index + "、" + add + ":" + point.lng + "," + point.lat + "</br>";
                                    var address = new BMap.Point(point.lng, point.lat);
                                    addMarker(address,new BMap.Label((index++)+":"+add,{offset:new BMap.Size(20,-10)}));
                                }
                            }, "济南市");
                        }
                        // 编写自定义函数,创建标注
                        function addMarker(point,label){
                            var marker = new BMap.Marker(point);
                            map.addOverlay(marker);
                            marker.setLabel(label);
                        }
                        //获取当前城市各个机构的经纬度,并添加到数组中
                        /*for (var lngAndLatArrElement of lngAndLatArr) {
                            var adds = new Array();
                            adds.push(new BMap.Point(116.307852, 40.057031),)
                            
                        }*/
                        /*adds = [
                            new BMap.Point(116.307852, 40.057031),
                            new BMap.Point(116.313082, 40.047674),
                            new BMap.Point(116.328749, 40.026922),
                            new BMap.Point(116.347571, 39.988698),
                            new BMap.Point(116.316163, 39.997753),
                            new BMap.Point(116.345867, 39.998333),
                            new BMap.Point(116.403472, 39.999411),
                            new BMap.Point(116.307901, 40.05901)
                        ];
                        
                        //批量地址逆解析
                        for (var i = 0; i < adds.length; i++) {
                            var marker = new BMap.Marker(adds[i]);
                            map.addOverlay(marker);
                            marker.setLabel(new BMap.Label("我是商圈:" + (i + 1), {offset: new BMap.Size(20, -10)}));
                        }

                        function bdGEO() {
                            var pt = adds[index];
                            geocodeSearch(pt);
                            index++;
                        }

                        function geocodeSearch(pt) {
                            if (index < adds.length - 1) {
                                setTimeout(window.bdGEO, 400);
                            }
                            myGeo.getLocation(pt, function (rs) {
                                var addComp = rs.addressComponents;
                                document.getElementById("result").innerHTML += index + ". " + adds[index - 1].lng + "," + adds[index - 1].lat + "：" + "商圈(" + rs.business + ")  结构化数据(" + addComp.province + ", " + addComp.city + ", " + addComp.district + ", " + addComp.street + ", " + addComp.streetNumber + ")<br/><br/>";
                            });
                        }
                        //alert(currentCity);
                        //点击设置定位后就自动定位当前地址,并给经纬度和详细地址文本域赋值
                        //$("#address").val(city_name);*/
                    } else {
                        console.log('获取失败');
                    }
                });
            },

            //确定地址,隐藏地图div
            confirm() {
                $("#showMapDiv").hide();//隐藏包含地图div的大div
                $("#map").hide();//隐藏地图容器的div
                $("#confirmDiv").hide();//隐藏确定按钮的div
            }
        },

        mounted() {
            //发送ajax请求，根据套餐id查询套餐信息，用于页面展示
            axios.post("/setmeal/findById.do?id=" + id).then((response) => {
                if (response.data.flag) {
                    this.setmeal = response.data.data;
                    //this.imgUrl = 'http://puco9aur6.bkt.clouddn.com/' + this.setmeal.img;
                }
            });
            //alert(addressData);

            //发送ajax请求,获取预约机构列表信息
            axios.get("/address/findAllAddress.do").then((resp) => {
                this.addressData = resp.data.data;
            })
        }
    });
</script>
<script>
    //日期控件
    var calendar = new datePicker();
    calendar.init({
        'trigger': '.picktime',/*按钮选择器，用于触发弹出插件*/
        'type': 'date',/*模式：date日期；datetime日期时间；time时间；ym年月；*/
        'minDate': getSpecifiedDate(new Date(), 1),/*最小日期*/
        'maxDate': getSpecifiedDate(new Date(), 30),/*最大日期*/
        'onSubmit': function () { /*确认时触发事件*/
            //var theSelectData = calendar.value;
        },
        'onClose': function () { /*取消时触发事件*/
        }
    });
</script>
</body>
</html>